package com.mes.biz.service;

import com.mes.common.core.service.BaseTreeService;
import com.mes.common.core.domain.TreeNode;
import java.util.List;
import com.mes.biz.domain.BizProductCategory;

/**
 * 产品分类Service接口
 * @author hwg
 * @email hwg
 * @date 2023-04-16
 */
public interface BizProductCategoryService extends BaseTreeService<BizProductCategory>
{


	/**
    * 根据展开层级和父节点递归获取展示的数据
    * @param level 展开层级
    * @param id 父节点ID
    * @return
    */
    public List<BizProductCategory> listDataByLevel(int level, String id);

    /**
     * 构建前端所需要树结构
     * @param level展开层级
     * @param id 父节点ID
     * @return
     */
    public List<TreeNode> buildTree(int level, String id);

	/**
     * 构建前端所需要树结构（排除当前节点及子节点）
     * @param level 展开层级
     * @param id 父节点ID
	 * @param excludeBizProductCategory 排除节点信息
     * @return
     */
    public List<TreeNode> buildTreeDataExcludeChild(int level, String id, BizProductCategory excludeBizProductCategory);

    /**
    * 根据父节点ID查询是否存在子节点
    * @param parentId
    * @return
    */
    public boolean hasChildByParentId(String parentId);

    /**
     * 树表格检索
     * @param queryParams 检索对象
     * @return
     */
    public List<BizProductCategory> searchBizProductCategoryList(BizProductCategory queryParams);

    /**
     * 树检索
     * @param queryParams 检索对象
     * @return
     */
    public List<TreeNode> searchBizProductCategory(BizProductCategory queryParams);

    /**
     * 查询当前节点和子节点id
     * @param categoryId
     * @return
     */
    String getSelfAndSubIds(String categoryId, List<BizProductCategory> bizProductCategoryList, StringBuffer stringBuffer);
}
